/*
 * Copyright (c) 2002-2004 Extreme! Lab, Indiana University. All rights reserved.
 * This software is open source. See the bottom of this file for the licence.
 */

package hasthi.wsrf;

import hasthi.wsrf.faults.DeleteResourcePropertiesRequestFailedFault;
import hasthi.wsrf.faults.InsertResourcePropertiesRequestFailedFault;
import hasthi.wsrf.faults.UpdateResourcePropertiesRequestFailedFault;

import java.util.HashMap;

import javax.xml.namespace.QName;

/**
 * This class represents a WS-Resource, the value shall be a string or XmlBean Xml representation
 * @author Srinath Perera(hperera@cs.indiana.edu)
 */
public interface WSResource {
    public HashMap<QName, Object> getResourceProperties()throws WsrfException;
    public Object getResourceProperty(QName name)throws WsrfException;
    public void insertResourceProperties(QName name,Object value)throws InsertResourcePropertiesRequestFailedFault;
    public void updateResourceProperties(QName name,Object value) throws UpdateResourcePropertiesRequestFailedFault;
    public void deleteResourceProperty(QName name)throws DeleteResourcePropertiesRequestFailedFault;
    public void queryResourceProperties(QName name)throws WsrfException;
    public void setResourceProperties(HashMap<QName, Object> properties)throws WsrfException;
    public QName getName();
    
}

